package com.plugin.core.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 咨询接待记录表
 *
 * @author plugin
 * @since 2025-07-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("elder_consultation")
public class ElderConsultation implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 咨询记录ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 长者即用户app_user_id
     */
    @TableField("elder_id")
    private Long elderId;

    /**
     * 销售人员编号
     */
    @TableField("sale_code")
    private String saleCode;

    /**
     * 咨询人姓名
     */
    @TableField("consultant_name")
    private String consultantName;

    /**
     * 咨询人电话
     */
    @TableField("consultant_phone")
    private String consultantPhone;

    /**
     * 咨询时间
     */
    @TableField("consultant_time")
    private LocalDateTime consultantTime;

    /**
     * 与咨询人关系
     */
    @TableField("relation")
    private String relation;

    /**
     * 咨询目的
     */
    @TableField("purpose")
    private String purpose;

    /**
     * 预计入住日期
     */
    @TableField("expected_check_in_date")
    private LocalDateTime expectedCheckInDate;

    /**
     * 媒介渠道:1朋友推荐2线下3网络
     */
    @TableField("channel_type")
    private Integer channelType;

    /**
     * 状态：0-新咨询，1-跟进中，2-已签约，3-已关闭，4-已失效
     */
    @TableField("status")
    private Integer status;

    /**
     * 关闭/失效原因
     */
    @TableField("close_reason")
    private String closeReason;

    /**
     * 签约日期
     */
    @TableField("conversion_date")
    private LocalDateTime conversionDate;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 真实图片
     */
    @TableField("file_img")
    private String fileImg;

    /**
     * 附件路径
     */
    @TableField("attachment")
    private String attachment;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 是否删除：0-未删除，1-已删除
     */
    @TableField("del")
    @TableLogic
    private Integer del;
}
